/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package pe.gov.mtc.dgac.licencias.bean;

import java.io.Serializable;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Transient;

/**
 *
 * @author externo.gamaro
 */
@Entity
@Table(name = "CLIENTEOPERADOR")
@NamedQueries({})
public class ClienteoperadorTO implements Serializable {
    private static final long serialVersionUID = 1L;
    @EmbeddedId
    protected ClienteoperadorPK clienteoperadorPK;
    
    @Column(name = "FECHA_INICIO", nullable = false)
    private int fechaInicio;
    @Column(name = "FECHA_TERMINO", nullable = false)
    private int fechaTermino;
    @Column(name = "FEC_REGISTRO", nullable = false)
    private int fecRegistro;
    @Column(name = "ESTADO", nullable = false)
    private int estado;
    @Column(name = "COD_CLIE_OPER", nullable = false)
    private int codClieOper;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "clienteoperador")
    private List<HorasTO> horasCollection;
    @JoinColumn(name = "COD_FUNCION", referencedColumnName = "COD_FUNCION")
    @ManyToOne
    private FuncionTO codFuncion;
    @JoinColumn(name = "COD_OPERADOR", referencedColumnName = "COD_OPERADOR", insertable = false, updatable = false)
    @ManyToOne
    private OperadorAereoTO operadorAereo;
    //no se a que hagan referencia
    @Transient
    private Long cod_cliente;
    @Transient
    private String sfechaInicio;
    @Transient
    private String sfechaTermino;
    
    public ClienteoperadorTO() {
    }

    public String getSfechaInicio() {
        return sfechaInicio;
    }

    public void setSfechaInicio(String sfechaInicio) {
        this.sfechaInicio = sfechaInicio;
    }

    public String getSfechaTermino() {
        return sfechaTermino;
    }

    public void setSfechaTermino(String sfechaTermino) {
        this.sfechaTermino = sfechaTermino;
    }

    public Long getCod_cliente() {
        return cod_cliente;
    }

    public void setCod_cliente(Long cod_cliente) {
        this.cod_cliente = cod_cliente;
    }

    public ClienteoperadorTO(ClienteoperadorPK clienteoperadorPK) {
        this.clienteoperadorPK = clienteoperadorPK;
    }

    public ClienteoperadorTO(ClienteoperadorPK clienteoperadorPK, int fechaInicio, int fechaTermino, int fecRegistro, int estado, int codClieOper) {
        this.clienteoperadorPK = clienteoperadorPK;
        this.fechaInicio = fechaInicio;
        this.fechaTermino = fechaTermino;
        this.fecRegistro = fecRegistro;
        this.estado = estado;
        this.codClieOper = codClieOper;
    }

    public ClienteoperadorTO(long codCliente, long codOperador) {
        this.clienteoperadorPK = new ClienteoperadorPK(codCliente, codOperador);
    }

    public ClienteoperadorPK getClienteoperadorPK() {
        return clienteoperadorPK;
    }

    public void setClienteoperadorPK(ClienteoperadorPK clienteoperadorPK) {
        this.clienteoperadorPK = clienteoperadorPK;
    }

    public int getFechaInicio() {
        return fechaInicio;
    }

    public void setFechaInicio(int fechaInicio) {
        this.fechaInicio = fechaInicio;
    }

    public int getFechaTermino() {
        return fechaTermino;
    }

    public void setFechaTermino(int fechaTermino) {
        this.fechaTermino = fechaTermino;
    }

    public int getFecRegistro() {
        return fecRegistro;
    }

    public void setFecRegistro(int fecRegistro) {
        this.fecRegistro = fecRegistro;
    }

    public int getEstado() {
        return estado;
    }

    public void setEstado(int estado) {
        this.estado = estado;
    }

    public int getCodClieOper() {
        return codClieOper;
    }

    public void setCodClieOper(int codClieOper) {
        this.codClieOper = codClieOper;
    }

    public List<HorasTO> getHorasCollection() {
        return horasCollection;
    }

    public void setHorasCollection(List<HorasTO> horasCollection) {
        this.horasCollection = horasCollection;
    }

    public FuncionTO getCodFuncion() {
        return codFuncion;
    }

    public void setCodFuncion(FuncionTO codFuncion) {
        this.codFuncion = codFuncion;
    }

    public OperadorAereoTO getOperadorAereo() {
        return operadorAereo;
    }

    public void setOperadorAereo(OperadorAereoTO operadorAereo) {
        this.operadorAereo = operadorAereo;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (clienteoperadorPK != null ? clienteoperadorPK.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof ClienteoperadorTO)) {
            return false;
        }
        ClienteoperadorTO other = (ClienteoperadorTO) object;
        if ((this.clienteoperadorPK == null && other.clienteoperadorPK != null) || (this.clienteoperadorPK != null && !this.clienteoperadorPK.equals(other.clienteoperadorPK))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "com.dgac.licencias.to.Clienteoperador[clienteoperadorPK=" + clienteoperadorPK + "]";
    }

}
